<?php
/**
 * エラー関係設定ファイル
 * 
 * 1.0 2010.11.20 初期リリース
 * 
 * @filesource error.conf.php
 * @package forty-two
 * @subpackage forty-two
 * @version 1.0
 */

// +------------------------------------------------------------------------
// | 案件別エラー設定
// | 
// | 案件別のPHPエラー処理に関する全ての設定を行います。
// +------------------------------------------------------------------------
// E_USER_ERROR発生時のエラーメール送信宛先
if (defined('MAIL_ADMIN'))
{
    // 定義時
    define('ERROR_REPORTING_MAIL_TO', MAIL_ADMIN);
}
else
{
    // 未定義時
    define('ERROR_REPORTING_MAIL_TO', '');
}

// デバッグモード定義
if (!defined('DEBUG_MODE'))
{
    // 未定義時
    define('DEBUG_MODE', TRUE);
}

// エラー時にトレースする階層設定(整数以外は全て出力します)
if (!defined('DEBUG_DISP_TRACE_HIERARCHY'))
{
     define('DEBUG_DISP_TRACE_HIERARCHY', 0);
}

// エラー時に出力する該当箇所前後行数設定(整数以外は前後5行出力します)
if(!defined('DEBUG_DISP_ERROR_SOURCE'))
{
     define('DEBUG_DISP_ERROR_SOURCE', 5);
}

// +------------------------------------------------------------------------
// | エラー設定
// | 
// | PHPエラー処理に関する全ての設定を行います。
// +------------------------------------------------------------------------
// error_reportingの設定、基本はE_ALL
define('ERROR_REPORTING_LEVEL', E_ALL);

// php.iniのlog_errors設定
// (エラーハンドラがコールされないE_ERRORをロギングするため１にしておく)
define('LOG_ERRORS', 1);

// エラーログファイル名
define('ERROR_LOG_FILE', 'error' . date('Ymd') . '.log');

// PHP標準定数「DIRECTORY_SEPARATOR」のエイリアス定数DS未定義時
if (!defined('DS'))
{
    define('DS', DIRECTORY_SEPARATOR);
}
// パスが定義の場合
if (!defined('PATH_WRITE_LOG'))
{
    define('PATH_WRITE_LOG', dirname(dirname(dirname(__FILE__))) . DS . 'write' . DS . 'log' . DS);
}

// エラー設定
error_reporting(ERROR_REPORTING_LEVEL);
ini_set('log_errors', LOG_ERRORS);
ini_set('error_log', PATH_WRITE_LOG . ERROR_LOG_FILE);



// グローバルエラーハンドラ設定(ファイル名へのパス、クラス名、ファンクション名)
define('GLOBAL_ERROR_HANDLER_FILE_NAME', 'Error.class.php');
define('GLOBAL_ERROR_HANDLER_CLASS_NAME', 'Error');
define('GLOBAL_ERROR_HANDLER_FUNCTION_NAME', 'handler');

// エラー処理クラスファイルの読み込み
require_once GLOBAL_ERROR_HANDLER_FILE_NAME;

// 実行環境がPHP5系かどうかの判断
define('PHP5', version_compare(phpversion(), '5.0.0', '>='));
if (PHP5)
{
    set_error_handler(array(
        GLOBAL_ERROR_HANDLER_CLASS_NAME, 
        GLOBAL_ERROR_HANDLER_FUNCTION_NAME
    ), ERROR_REPORTING_LEVEL);
}
else
{
    set_error_handler(array(
        GLOBAL_ERROR_HANDLER_CLASS_NAME, 
        GLOBAL_ERROR_HANDLER_FUNCTION_NAME
    ));
}



?>